package com.augurit.common.workdayholiday.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Transactional;

import com.augurit.common.base.service.ICrudService;
import com.augurit.common.entity.WhSpecialTime;
import com.augurit.common.workdayholiday.model.TimeSpan;
import com.augurit.common.workdayholiday.web.form.WhSpecialTimeForm;

public interface IWhSpecialTimeService extends ICrudService<WhSpecialTimeForm, Long> {
	
	/**
	 *  获取所有的自定义假期（包括元旦、清明等传统节日及非工作日时间中自定义的假期，但不包括周末）
	 * @return
	 */
	public List<String> getCustomHolidays();
	
	/**
	 * 获取所有的自定义假期（包括元旦、清明等传统节日及非工作日时间中自定义的假期，但不包括周末）
	 * @return
	 */
	public List<WhSpecialTime> getCustomHolidaysList();
	
	/**
	 * 获取所有的自定义工作日，就是那些本该为周末或者传统节日的工作日
	 * @return
	 */
	public List<String> getCustomWorkdays();
	
	/**
	 * 获取所有的自定义工作日，就是那些本该为周末或者传统节日的工作日
	 * @return
	 */
	public List<WhSpecialTime> getCustomWorkdaysList();
	
	/**
	 * 获取中所有的自定义工作日对应的时长
	 * @return
	 */
	public Map<String,TimeSpan> getCustomWorkdaysTimeSpan();
	
	/**
	 * 添加非常规工作日时间段
	 * @param from
	 * @param to
	 * @param isHoliday
	 * @param memo
	 */
	public void addSpecialPeriod(final Date from, final Date to, String isHoliday, String memo);
}